package com.rj.util;

import com.rj.core.exception.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.helpers.MessageFormatter;

/**
 * 日志打印工具
 *
 * @author YFX_RANLUBO
 * @date 2025/06/20 10:03
 **/
@Slf4j
public class ExceptionUtils {
    /**
     * 抛出统一未知异常并打印错误日志
     *
     * @param e       异常类
     * @param message 自定义错误信息
     * @param params  参数
     */
    public static RuntimeException throwException(Exception e, String message, Object... params) {

        if (params != null) {
            message = MessageFormatter.basicArrayFormat(message, params);
        }
        log.error("{},原因如下：", message, e);
        return new RuntimeException(message);
    }
    /**
     * 抛出统一已知业务异常
     * 用在业务逻辑判定方面
     * @param message 自定义错误信息
     * @param params  参数
     */
    public static ServiceException serviceException(String message, Object... params) {
        if (params != null) {
            message = MessageFormatter.basicArrayFormat(message, params);
        }
        return new ServiceException(message);
    }
}
